Data networks include various infrastructure components for sending data between distributed computing devices. For example, a network may consist of interconnected nodes having switching components such as bridges and routers that send data from one node to another. The node components maintain information to facilitate sending data to a given destination.
The IEEE 802.1D specification defines a standard for bridges. Briefly, a bridge may operate on MAC layer information to forward data to other switching components. Here, a bridge may maintain a database that indicates where data bound for certain destinations should be forwarded. For example, the database may indicate that the data should be forwarded to a specific port. In the event there is an entry in the database for that destination, the bridge forwards the data accordingly. In the event the database does not include an entry that indicates where data bound for a certain destination should be forwarded, the bridge may send the data to every node to which the bridge is connected. This process may be repeated at these nodes until the data is eventually sent to a node that has information regarding how the data is to be forwarded to the destination.
Several bridges may be connected together to form a combination that is commonly referred to as a “stack.” The combination appears, for the most part, as a single bridge to external components. For example, a host or an external switch may communicate with the stack as if the stack is a single bridge. The bridges within a stack may share information from their respective databases. As an example, a given bridge may distribute information about learned MAC addresses to other bridges in the stack.
Conventionally, software-based solutions have been used to manage information regarding learned MAC addresses within a stack. As a result, bridge designs have had to dedicate significant CPU resources and support relatively complex software to handle the learning and distribution of the MAC addresses.